(function(window,undefined){
	var Star = function(config){
		this.init(config)
	}
	Star.prototype = {
		constructor:Star,
		init(config){
			var _this=this;
			_this.callback = config.callback || function(){}
			_this.InnderHtml(config);
		},
		InnderHtml(config){
			var _this=this;
			// 默认数据
			var defaultData = config.wheels;
			//实例化better
			var qs="";
			
			var html=[],headerUl=[];
			var arrStr=[];
			var dataNum=0;
			var exportId="";//默认选中的id（从第一级到最后一级的id，以'_'符号分割）
			var quBie=-1;//判断header头部是否点击到了第一个之后
			
			$("#"+config.id).click(function(){
				var dom=`<div class="two_tan hide">
					<div class="two_zhezhao"></div>
					<div class="two_tan1">
						<div id="betterWrapper1">
							<ul class="headerUl"></ul>
						</div>
						<div class="threeTop">
							<div class="three" id="betterWrapper">
								<ul class="threeUi"></ul>
							</div>
						</div>
					</div>
				</div>`
				$("#"+config.id).after(dom);
				
				dataNum=0;
				exportId=$("#"+config.id).data("id") || config.default;
				if(exportId.length>1){
					quBie=0;
				}
				ExportArray();
				$(".two_tan").removeClass("hide");
				setTimeout(function(){
					$(".two_zhezhao").addClass("two_zhezhao_tr");
					$(".two_tan1").addClass("two_tan1_tr");
					better_scroll("betterWrapper");
					HeaderWidth();
				},30)
				
				// 有child数据的click
				$(".threeUi").on("click",".threeLi",function(){
					let idChi=$(this).data("id");
					exportId=exportId+"_"+idChi;
					dateNum(idChi);
				})
				
				// 获取数据
				$(".threeUi").on("click","li.threeLiChi",function(){
					dataNum++;
					if(dataNum==1){
						$(this).addClass("threeLiChi_tr");
						$(this).siblings().removeClass("threeLiChi_tr");
						panIf();
						exportId=exportId+"_"+$(this).data("id");
						if(exportId.substr(0,1)!="_"){
							if(exportId.length==2){
								exportId=exportId.substr(1,exportId.length)
							}else{
								if(quBie==0 || quBie==-1){
									exportId=exportId;
								}else{
									if(exportId.substr(0,1)=="_"){
										exportId=exportId.substr(1,exportId.length)
									}else{
										exportId=exportId;
									}
								}
							}
						}else{
							exportId=exportId.substr(1,exportId.length)
						}
						
						let data={
							id:exportId,
							value:$(this).children("span").html(),
						}
						// 返回前台data数据
						_this.callback(ReturnData(data))
						// 关闭弹层
						clone();
						headerUl=[];
					}
				})
				// 点击遮罩收起
				$(".two_zhezhao").click(function(){
					clone();
				})
				// header分级的click
				$(".headerUl").on("click",".headerLi",function(){
					if($(this).index()==0){
						quBie=1;
					}
					if(exportId.substr(0,1)=="_"){
						exportId=exportId.substr(1,exportId.length)
					}
					let arrayExport=exportId.split("_");
					let arrayNum=[];
					for(let i=$(this).index();i<arrayExport.length;i++){
						arrayNum.push(i)
					}
					for(let i=arrayNum.length;i>0;i--){
						arrayExport.splice(arrayNum[i-1],1)
					}
					exportId=arrayExport.toString().replace(/,/g,"_");
					dataNum=0;
					let headerHtml=headerUl[$(this).index()];
					$(".threeUi").html(headerHtml)
					better_scroll("betterWrapper");
					let numArray=[];
					for(let i=0;i<($(this).index()+1);i++){
						numArray.push(headerUl[i])
					}
					headerUl=numArray;
					HeaderArr(headerUl);
					HeaderWidth();
				})
			})
			function panIf(){
				if(exportId.length==1){
					exportId="";
				}
			}
			function ExportArray(){
				if(exportId.length<=1){
					headerUl=[];
					html=[];
					data.forEach((item,index)=>{
						html.push(`<li data-id="${item.id}" data-index="${index}" class="${item.child.length>0?'threeLi':'threeLiChi'}"><span>${item.title}</span>${item.child.length>0?"<span class='threeUiSpan'></span>":''}</li>`)
					})
					$(".threeUi").html(html);
					headerUl.push(html);
					HeaderArr(headerUl);
					for(let i=0;i<$(".threeLiChi").length;i++){
						if($(".threeLiChi").eq(i).data("id")==exportId.split("_")[exportId.split("_").length-1]){
							$(".threeLiChi").eq(i).addClass("threeLiChi_tr");
							$(".threeLiChi").eq(i).siblings().removeClass("threeLiChi_tr");
						}
					}
					exportId="";
				}else{
					headerUl=[];
					exportId.split("_").forEach((item,index)=>{
						if(index<(exportId.split("_").length-1)){
							dateNum(item);
						}else{
							html=[];
							data.forEach((item,index)=>{
								html.push(`<li data-id="${item.id}" data-index="${index}" class="${item.child.length>0?'threeLi':'threeLiChi'}"><span>${item.title}</span>${item.child.length>0?"<span class='threeUiSpan'></span>":''}</li>`)
							})
							headerUl.unshift(html);
							HeaderArr(headerUl);
							for(let i=0;i<$(".threeLiChi").length;i++){
								if($(".threeLiChi").eq(i).data("id")==exportId.split("_")[exportId.split("_").length-1]){
									$(".threeLiChi").eq(i).addClass("threeLiChi_tr");
									$(".threeLiChi").eq(i).siblings().removeClass("threeLiChi_tr");
								}
							}
						}
					})
				}
			}
			function dateNum(idChi){
				moren(data,idChi);
				html=[];
				arrStr.forEach((item,index)=>{
					html.push(`<li data-id="${item.id}" class="${item.child.length>0?'threeLi' : 'threeLiChi'}"><span>${item.title}</span>${item.child.length>0?"<span class='threeUiSpan'></span>":''}</li>`)
				});
				$(".threeUi").html(html);
				better_scroll("betterWrapper");
				headerUl.push(html);
				HeaderArr(headerUl);
			}
			// 根据id获取对应的child数据
			function moren(arr,id){
				arr.forEach((item,index)=>{
					if(item.id==id){
						arrStr=item.child;
					}else{
						moren(item.child,id)
					}
				})
			}
			// header头部实例化better_scroll
			function HeaderWidth(){
				let width_header=0;
				for(let i=0;i<$(".headerUl li").length;i++){
					width_header+=($(".headerUl li").eq(i).width()+4);
				}
				$(".headerUl").css({"width":width_header+"px"})
				better_scroll1("betterWrapper1",(width_header-$(document).width()));
			}
			// 当前位置数据逻辑渲染
			function HeaderArr(arr){
				let arrHtml=[];
				arr.forEach((item,index)=>{
					arrHtml.push(`<li class="headerLi">第${index+1}级</li>`)
				})
				$(".headerUl").html(arrHtml);
				
				let width_header=0;
				for(let i=0;i<$(".headerUl li").length;i++){
					width_header+=($(".headerUl li").eq(i).width()+4);
				}
				$(".headerUl").css({"width":width_header+"px"})
				better_scroll1("betterWrapper1",(width_header-$(document).width()));
			}
			// 收起函数
			function clone(){
				$(".two_zhezhao").removeClass("two_zhezhao_tr");
				$(".two_tan1").removeClass("two_tan1_tr");
				setTimeout(function(){
					$(".two_tan").addClass("hide");
					$(".two_tan").remove();
				},360)
			}
			// 竖向brtter_scroll滚动
			function better_scroll(id) {
				let wrapper = document.getElementById(id)
				qs = BetterScroll.createBScroll(wrapper, {
					scrollY:true,
					click:true,
					tap:true,
					mouseWheel:true,
				})
				qs.scrollTo(0,-0.1,50)
			}
			// 横向brtter_scroll滚动
			function better_scroll1(id,scroll) {
				let wrapper = document.getElementById(id)
				qs = BetterScroll.createBScroll(wrapper, {
					scrollX:true,
					click:true,
					tap:true,
					mouseWheel:true,
				})
				if(scroll>0){
					qs.scrollTo(-scroll,0,50);
				}else{
					qs.scrollTo(-0.1,0,50);
				}
			}
			// 返回callback数据
			function ReturnData(data){
				return data
			}
			
		}
	}
	
	window.Star = window.Star || Star
}(window))